package top.minuy.subject.leetcode._387;

/**
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 *
 *  
 *
 * 示例：
 *
 * s = "leetcode"
 * 返回 0
 *
 * s = "loveleetcode"
 * 返回 2
 *  
 *
 * 提示：你可以假定该字符串只包含小写字母。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/first-unique-character-in-a-string
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author Minuy
 * @time 12:16
 * @date 2021/11/7
 */
public class Solution {

    public static void main(String[] args) {
        System.out.println(new Solution().firstUniqChar("loveleetcode"));
    }

    public int firstUniqChar(String s) {
        int[] count = new int[26];
        int[] local = new int[26];
        for (int i=0;i<local.length;i++){
            local[i] = -1;
        }

        int index;
        for (int i=0;i<s.length();i++){
            index = s.charAt(i)-'a';
            count[index]++;
            if(local[index] == -1){
                local[index] = i;
            }
        }

        int minIndex = s.length();
        for (index = 0;index<count.length;index++){
            if(count[index] == 1){
                System.out.println("只出现一次的"+((char)(index+'a')));
                minIndex = minIndex>local[index]?local[index]:minIndex;
            }
        }
        if (minIndex == s.length()) {
            return -1;
        }else {
            return minIndex;
        }
    }
}
